% coding: utf-8


\subsection{Cuarta parte: análisis de traceroute.}

\subsubsection{traceroute, traceroute linux y tcptraceroute linux}
Lo primero que haremos es repetir las pruebas de la secci\'on anterior pero utilizando las herramientas \textbf{traceroute} y \textbf{tcptraceroute} de linux.
 
\begin{itemize}
\item \textbf{traceroute}
\begin{itemize}
	\item www.google.com
		\begin{verbatim}
root@bt:~# traceroute www.google.com
traceroute to www.google.com (173.194.42.50), 30 hops max, 60 byte packets
 1  * * *
 2  192.168.1.1 (192.168.1.1)  2.394 ms *  14.007 ms
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  205-164-89-200.fibertel.com.ar (200.89.164.205)  26.925 ms  35.843 ms 
 197-164-89-200.fibertel.com.ar (200.89.164.197)  35.872 ms
 8  222-165-89-200.fibertel.com.ar (200.89.165.222)  38.698 ms  38.665 ms  
 55.149 ms
 9  200.49.159.254 (200.49.159.254)  26.684 ms  26.974 ms  30.784 ms
10  209.85.251.28 (209.85.251.28)  32.018 ms *  31.970 ms
11  209.85.251.196 (209.85.251.196)  38.186 ms  38.068 ms  38.088 ms
12  eze03s06-in-f18.1e100.net (173.194.42.50)  35.253 ms  1438.200 ms  
1437.367 ms
		\end{verbatim}

	\item www.facebook.com
		\begin{verbatim}
root@bt:~# traceroute www.facebook.com
traceroute to www.facebook.com (69.63.189.70), 30 hops max, 60 byte packets
 1  * * *
 2  192.168.1.1 (192.168.1.1)  4.286 ms  93.670 ms  203.816 ms
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  197-164-89-200.fibertel.com.ar (200.89.164.197)  64.638 ms 
 213-165-89-200.fibertel.com.ar (200.89.165.213)  18.264 ms 
 193-164-89-200.fibertel.com.ar (200.89.164.193)  15.590 ms
 8  129-165-89-200.fibertel.com.ar (200.89.165.129)  30.030 ms  17.729 ms  
 18.806 ms
 9  150-165-89-200.fibertel.com.ar (200.89.165.150)  22.994 ms  74.581 ms  
 102.485 ms
10  tengigabitethernet7-1.asr1.eze1.gblx.net (208.178.244.97)  197.671 ms  
195.950 ms  217.621 ms
11  ae1-20G.scr4.WDC2.gblx.net (67.16.166.190)  239.345 ms  250.836 ms  
267.387 ms
12  ae1-20G.scr4.WDC2.gblx.net (67.16.166.190)  260.988 ms  246.089 ms *
13  FACEBOOK-INC.ethernet12-1.csr1.DCA3.gblx.net (64.215.81.234)  
2159.161 ms  2161.559 ms *
14  ae1.bb02.iad1.tfbnw.net (74.119.78.60)  2180.975 ms  2158.752 ms  
2181.085 ms
15  ae11.dr03.ash2.tfbnw.net (74.119.78.154)  2157.672 ms 204.15.21.95 
(204.15.21.95)  2161.544 ms ae11.bb01.iad1.tfbnw.net (74.119.78.68)  
2169.027 ms
16  * eth-17-2.csw01a.ash2.tfbnw.net (74.119.76.127)  2198.529 ms 
eth-18-24.csw01b.ash2.tfbnw.net (74.119.77.169)  2163.927 ms
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
		\end{verbatim}

	\item www.dc.uba.ar
		\begin{verbatim}
root@bt:~# traceroute www.dc.uba.ar
traceroute to www.dc.uba.ar (157.92.27.21), 30 hops max, 60 byte packets
 1  * * *
 2  192.168.1.1 (192.168.1.1)  18.493 ms  31.597 ms  31.620 ms
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  209-165-89-200.fibertel.com.ar (200.89.165.209)  68.062 ms  15.290 ms 
 193-164-89-200.fibertel.com.ar (200.89.164.193)  86.983 ms
 8  222-165-89-200.fibertel.com.ar (200.89.165.222)  44.505 ms  79.809 ms  
 277.054 ms
 9  npcR06-breR01-420000097.metrored.net.ar (200.49.69.165)  307.077 ms  
 346.515 ms  385.636 ms
10  190.220.179.1 (190.220.179.1)  350.777 ms  382.716 ms  370.342 ms
11  * 190.220.176.34 (190.220.176.34)  711.076 ms  711.354 ms
12  190.220.179.122 (190.220.179.122)  714.755 ms  714.579 ms  714.640 ms
13  * * *
14  157.92.47.13 (157.92.47.13)  704.601 ms  704.598 ms  704.266 ms
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
		\end{verbatim}
 
	\item www.hotmail.com
		\begin{verbatim}
root@bt:~# traceroute www.hotmail.com
traceroute to www.hotmail.com (65.55.72.167), 30 hops max, 60 byte packets
 1  * * *
 2  192.168.1.1 (192.168.1.1)  2.993 ms  17.102 ms  18.560 ms
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  245-165-89-200.fibertel.com.ar (200.89.165.245)  35.293 ms 
 197-164-89-200.fibertel.com.ar (200.89.164.197)  28.597 ms  21.270 ms
 8  129-165-89-200.fibertel.com.ar (200.89.165.129)  15.264 ms  35.027 ms  
 13.901 ms
 9  150-165-89-200.fibertel.com.ar (200.89.165.150)  19.794 ms  21.753 ms  
 20.554 ms
10  tengigabitethernet3-4.asr1.eze1.gblx.net (208.50.25.65)  194.740 ms  
196.360 ms  210.387 ms
11  ip-208.49.147.86.gblx.net (208.49.147.86)  212.710 ms  211.860 ms  
212.654 ms
12  ge-4-0-0-0.mia-64cb-1b.ntwk.msn.net (207.46.47.15)  208.131 ms  
240.842 ms  226.323 ms
13  xe-4-2-0-0.sn1-96cb-1b.ntwk.msn.net (207.46.46.55)  211.359 ms  
209.801 ms  210.232 ms
14  * * xe-8-2-0-0.sn1-96cb-1a.ntwk.msn.net (207.46.46.179)  217.874 ms
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
		\end{verbatim}
\end{itemize}

\item \textbf{tcptraceroute}
\begin{itemize}
	\item www.google.com
		\begin{verbatim}
root@bt:~# tcptraceroute www.google.com
Selected device eth0, address 192.168.1.117, port 43077 for 
outgoing packets
Tracing the path to www.google.com (173.194.42.51) on TCP port 80 (www), 
30 hops max
 1  192.168.1.1  2.985 ms  2.782 ms  3.675 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  245-165-89-200.fibertel.com.ar (200.89.165.245)  20.284 ms  
14.912 ms  180.946 ms
 7  222-165-89-200.fibertel.com.ar (200.89.165.222)  25.767 ms 
21.199 ms  72.263 ms
 8  200.49.159.254  108.638 ms  19.834 ms  20.887 ms
 9  209.85.251.28  129.449 ms  13.851 ms  18.798 ms
10  * * *
11  eze03s06-in-f19.1e100.net (173.194.42.51) [open]  17.611 ms  
14.261 ms  22.811 ms
\end{verbatim}

\item www.facebook
\begin{verbatim}
root@bt:~# tcptraceroute www.facebook.com
Selected device eth0, address 192.168.1.117, port 60675 for outgoing packets
Tracing the path to www.facebook.com (69.171.247.53) on TCP port 80 (www), 
30 hops max
 1  192.168.1.1  2.668 ms  2.623 ms  2.223 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  213-165-89-200.fibertel.com.ar (200.89.165.213)  15.863 ms  
17.494 ms  20.180 ms
 7  198-165-89-200.fibertel.com.ar (200.89.165.198)  18.353 ms  
17.399 ms  15.114 ms
 8  86-165-89-200.fibertel.com.ar (200.89.165.86)  22.230 ms  
13.500 ms  34.482 ms
 9  ge-3-2-1.ar2.EZE1.gblx.net (64.209.94.69)  234.320 ms  
195.968 ms  231.887 ms
10  ae0-40G.scr4.NYC1.gblx.net (67.17.71.158)  187.741 ms  
186.454 ms  185.326 ms
11  ae1-20G.scr4.WDC2.gblx.net (67.16.166.190)  189.015 ms  
185.362 ms  186.770 ms
12  lag14.csr2.DCA3.gblx.net (67.16.166.250)  192.677 ms  
197.683 ms  201.197 ms
13  FACEBOOK-INC.ethernet12-1.csr1.DCA3.gblx.net (64.215.81.234)  
165.857 ms  169.819 ms  167.064 ms
14  ae1.bb02.iad1.tfbnw.net (74.119.78.60)  168.477 ms  
166.828 ms  171.482 ms
15  ae8.bb02.frc1.tfbnw.net (31.13.24.46)  187.409 ms  
186.028 ms  189.083 ms
16  ae2.dr02.frc1.tfbnw.net (31.13.24.21)  177.493 ms  
178.712 ms  177.403 ms
17  po1021.csw03a.frc1.tfbnw.net (31.13.25.205)  178.235 ms  
177.384 ms  177.461 ms
18  * * *
19  www-slb-12-03-frc1.facebook.com (69.171.247.53) [open]  
182.449 ms  179.703 ms  185.659 ms
\end{verbatim}

\item www.dc.uba.ar
\begin{verbatim}
root@bt:~# tcptraceroute www.dc.uba.ar
Selected device eth0, address 192.168.1.117, port 38248 for 
outgoing packets
Tracing the path to www.dc.uba.ar (157.92.27.21) on TCP port 80 (www), 
30 hops max
 1  192.168.1.1  4.207 ms  2.459 ms  1.720 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  245-165-89-200.fibertel.com.ar (200.89.165.245)  24.377 ms  
14.667 ms *
 7  222-165-89-200.fibertel.com.ar (200.89.165.222)  12.256 ms * 
15.759 ms
 8  npcR06-breR01-420000097.metrored.net.ar (200.49.69.165)  
32.719 ms  
15.064 ms  11.759 ms
 9  190.220.179.1  14.550 ms  14.181 ms  12.683 ms
10  190.220.176.34  15.420 ms  15.162 ms  13.229 ms
11  190.220.179.122  13.350 ms  29.956 ms  31.987 ms
12  * * *
13  157.92.47.13  17.249 ms  16.057 ms  13.739 ms
14  gdc.fcen.uba.ar (157.92.18.21)  24.678 ms  15.007 ms  
12.503 ms
15  dc.uba.ar (157.92.27.21) [open]  16.561 ms  15.306 ms  
20.628 ms
\end{verbatim}

\item www.hotmail.com
\begin{verbatim}
root@bt:~# tcptraceroute www.hotmail.com
Selected device eth0, address 192.168.1.117, port 56474 
for outgoing packets
Tracing the path to www.hotmail.com (65.55.72.215) on 
TCP port 80 (www), 
30 hops max
 1  192.168.1.1  2.459 ms  2.744 ms  2.090 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  213-165-89-200.fibertel.com.ar (200.89.165.213)  19.255 ms  
18.095 ms  14.368 ms
 7  129-165-89-200.fibertel.com.ar (200.89.165.129)  20.225 ms  
24.682 ms  20.317 ms
 8  150-165-89-200.fibertel.com.ar (200.89.165.150)  17.183 ms * 
24.635 ms
 9  tengigabitethernet7-1.asr1.eze1.gblx.net (208.178.244.97)  
200.271 ms  198.076 ms  196.733 ms
10  ip-208.49.147.86.gblx.net (208.49.147.86)  169.845 ms  
170.812 ms  267.900 ms
11  xe-2-0-0-0.sn1-96cb-1a.ntwk.msn.net (207.46.43.60)  221.221 ms  
201.396 ms  203.055 ms
12  * * *
13  origin.sn136w.snt136.mail.live.com (65.55.72.215) [open]  197.673 ms  
196.270 ms  203.849 ms
\end{verbatim}

\end{itemize}

\end{itemize}

A continuación compararemos sitio por sitio las tres implementaciones: nuestra implementación de traceroute, traceroute de linux y tcptraceroute de linux.
Vale aclarar que esta comparación se realizó teniendo en cuenta los resultados obtenidos con las tres técnicas dentro de un mismo entorno; es decir desde la máquina virtual. 
\begin{itemize}
 \item www.google.com: Nuestra implementación de traceroute no alcanza al sitio de google en 173.194.42.51. Traceroute de linux alcanza esta dirección en el paso 12 y tcptraceroute lo hace en el salto 11.

\item www.facebook.com: Nuestra implementación no alcanza el destino final así como tampoco lo hace traceroute de linux. Sin embargo tcptraceroute si alcanza el destino final luego de 19 saltos.

\item www.dc.uba.ar: La situación es la misma que para www.facebook.com. En 30 saltos no se llega al destino final. Pero tcptraceroute lo alcanza luego de 15 saltos.

\item www.hotmail.com: Misma situación que el caso anterior salvo que tcptraceroute alcanza el destino final en  13 saltos 
\end{itemize}

Las diferencias entre las implementaciones se deben a que puede haber routers que tienen filtrados los paquetes ICMP, que son los que envía traceroute para encontrar la ruta. Con tcptraceroute se envían paquetes TCP en lugar de paquetes ICMP evitando así el filtrado de los paquetes en la ruta.
\footnote{ver http://d00m3dr4v3n.blogspot.com.ar/2011/11/tcptraceroute-una-manera-de-hacer.html}

 
\subsubsection{traceroute con opciones IP}
El header IP tiene un campo variable de opciones, una posibilidad es usarlo para implementar traceroute. 

\begin{verbatim}
  0               8              16              24
   +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
   |F| C |  Number |    Length     |          ID Number            |
   +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
   |      Outbound Hop Count       |       Return Hop Count        |
   +---------------+---------------+---------------+---------------+
   |                     Originator IP Address                     |
   +---------------+---------------+---------------+---------------+
\end{verbatim}

Como se puede observar, esta opción lleva la dirección IP de quién inicia el traceroute. Los routers intermedios usarán esta dirección para devolverle a esta direccion IP el correspondiente mensaje ICMP. Supongamos que intentásemos utilizar esta opción para un host emisor dentro de una red privada que sale a Internet a través de un gateway, en el campo ``originator
IP address'' irá esta dirección. Cuando este mensaje llegue a un router intermedio y éste decida darle una respuesta intentará dársela a la ip seteada en el campo Originator IP Address. Pero esta dirección es privada por lo que los routers intermedios no saben a quién responderle. Es más, podrían responderle a alguien que no corresponde ya que las direcciones privadas pueden repetirse. Una primera solución que se nos viene a la mente es setear el campo en cuestión con la dirección del gateway. De esta forma se soluciona el problema de a quién responderle, pero se agrega el problema de a quién el router debería entregarle dichas respuestas.


